package collection;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/**
 * 字符串的排序
 */
public class SortListDemo3 {
    public static void main(String[] args) {
        // 排英文
        List<String> list = new ArrayList<String>();
        list.add("Tom");
        list.add("Jerry");
        list.add("Jack");
        list.add("Mary");
        list.add("Tony");
        list.add("serein");
        list.add("Jobs Steve");
        System.out.println("没有排序的集合:"+ list);
        // 使用集合的排序
        Collections.sort(list);
        System.out.println("排序后的集合:"+ list);

        // 排中文
        List<String> list2 = new ArrayList<String>();
        list2.add("张三AA");
        list2.add("李四DD");
        list2.add("王五S");
        list2.add("赵六");
        list2.add("孙七DAS");
        System.out.println("没有排序的集合:"+ list2);
        Collections.sort(list2);
        System.out.println("排序后的集合:"+ list2);

        // 中英混合
        List<String> list3 = new ArrayList<String>();
        // list1和list2的并集
        list.addAll(list2);
        list3.addAll(list);
        System.out.println("没有排序的集合:"+ list3);
        Collections.sort(list3);
        System.out.println("排序后的集合:"+ list3);

        // 自定义比较方法 匿名内部类
        Collections.sort(list3, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                 // 根据字符串的长度进行排序
                return o2.length() - o1.length();
            }
        });
        System.out.println("自定义比较方法实现排序后的集合:"+ list3);

    }
}
